3 subject="""comment 3"""
4 date="2020-05-04T18:36:30Z"
6 Hmm, but.. What if both A and B's trees are subsets
7 of the resolved tree? Safe then?
9 A exports `[(foo, 1)]`, while B exports `[(bar, 2)]`
10 the resolved tree is `[(foo, 1), (bar, 2)]`.
12 Well, what was in the export before? Suppose it was `[(foo, 2)]`..
13 Then B would have renamed foo to bar, and A exported 1 to foo.
14 Order is unknown, so the export has either of `[(foo, 1), (bar, 2)]`
17 Yeah, still not safe even when both trees are subsets.
21 An optimisation like this needs some way to detect if there's been a rename
22 like B keeps doing in these examples. If there has not been any rename,
23 the optimisation is safe.
25 export.log contains only the sha of the tree that has been exported
26 by each repo to the export remote. It might contains some trees that
27 were exported before, but when it gets compacted, that information is
28 lost, and anyway there's no way to know if B exported some old tree before
29 or after A exported its most recently exported tree. So, I don't think
30 retrospective rename detection is possible.